#ifndef QSO_EDIT_DIALOG_H
#define QSO_EDIT_DIALOG_H

#include <gtk/gtk.h>
#include "../database/sqlite_manager.h"

class QSOEditDialog {
public:
    QSOEditDialog();
    ~QSOEditDialog();
    
    bool init(const QSORecord& record);
    void show();
    void hide();
    GtkWidget* get_window();
    bool save_record();

private:
    GtkBuilder *builder;
    GtkWidget *window;
    QSORecord record_;
    
    // 私有方法
    void populate_fields();
    bool validate_fields();
    
    // 静态回调函数
    static void on_save_button_clicked(GtkButton *button, gpointer data);
    static void on_cancel_button_clicked(GtkButton *button, gpointer data);
};

#endif // QSO_EDIT_DIALOG_H